package smallfrench.moteur.biblio.igu;

import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.WindowConstants;

import smallfrench.moteur.biblio.AClasse;
import smallfrench.moteur.biblio.AnnotationMembre;
import smallfrench.moteur.biblio.RChaine;

public class Fenetre extends Composant {

	public static final AClasse CLASSE = AClasse.creer(Fenetre.class);

	protected JFrame frame;

	@AnnotationMembre
	public Fenetre() {
		frame = new JFrame("Fenetre smallFrench");

		frame.setSize(400, 200);
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

		processusScript.ajouterFenetre(frame);

		frame.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosed(WindowEvent e) {
				processusScript.retirerFenetre(frame);
			}
		});

		super.setComponent(frame);
	}

	@AnnotationMembre
	public void modifierTitre(RChaine chaine) {
		frame.setTitle(chaine.valeur);
	}

	@AnnotationMembre
	public void modifierBarreMenu(BarreMenu b) {
		frame.setJMenuBar(b.getMenuBar());
	}

	@AnnotationMembre
	public void disposer() {
		frame.dispose();
	}

	@Override
	@AnnotationMembre
	public RChaine enChaine() {
		return new RChaine(CLASSE.nom);
	}

	@Override
	public Container getComponent() {
		return frame;
	}

}
